import Vue from 'vue'
import VueRouter from 'vue-router'
//使用路由懒加载 改造当前import..from 组件代码
//import Login from './components/Login.vue'
const Login = () => import(/* webpackChunkName: "login_home_welcome" */ './components/Login.vue')

//import Home from './components/Home.vue'
const Home = () => import(/* webpackChunkName: "login_home_welcome" */ './components/Home.vue')

//import Welcome from './components/Welcome.vue'
const Welcome = () => import(/* webpackChunkName: "login_home_welcome" */ './components/Welcome.vue')


//import User from './components/user/User.vue'
const User = () => import(/* webpackChunkName: "User_Rights_Roles" */ './components/user/User.vue')

//import Rights from './components/power/Rights.vue'
const Rights = () => import(/* webpackChunkName: "User_Rights_Roles" */ './components/power/Rights.vue')

//import Roles from './components/power/Roles.vue'
const Roles = () => import(/* webpackChunkName: "User_Rights_Roles" */ './components/power/Roles.vue')


//import Cate from './components/goods/Cate.vue'
const Cate = () => import(/* webpackChunkName: "Cate_Params" */ './components/goods/Cate.vue')

//import Params from './components/goods/Params.vue'
const Params = () => import(/* webpackChunkName: "Cate_Params" */ './components/goods/Params.vue')


//import GoodsList from './components/goods/List.vue'
const GoodsList = () => import(/* webpackChunkName: "GoodList_Add" */ './components/goods/List.vue')

//import Add from './components/goods/Add.vue'
const Add = () => import(/* webpackChunkName: "GoodList_Add" */ './components/goods/Add.vue')


import Order from './components/orders/Order.vue'
import Report from './components/reports/Report.vue'


Vue.use(VueRouter)

const router = new VueRouter({
    routes: [
        { path: '/', redirect: '/login' },
        { path: '/login', component: Login },
        {
            path: '/home', component: Home, redirect: "/welcome",
            children: [{
                path: "/welcome", component: Welcome
            },
            { path: "/users", component: User },
            { path: "/rights", component: Rights },
            { path: "/roles", component: Roles },
            { path: "/categories", component: Cate },
            { path: "/params", component: Params },
            { path: "/goods", component: GoodsList },
            { path: "/goods/add", component: Add },
            { path: "/orders", component: Order },
            { path: "/reports", component: Report },
            ]
        }
    ]
})
// 挂载路由导航守卫
router.beforeEach((to, from, next) => {
    // to 将要访问的路径
    // from 代表从哪个路径跳转而来
    // next是一个函数 有两种用法
    // 1 next() 放行 2 next('/login') 强制跳转

    // 访问login直接放行
    if (to.path === '/login') return next();
    //获取token 
    const tokenStr = window.sessionStorage.getItem('token');
    // 没有token 去访问login
    if (!tokenStr) return next('/login');
    //有token 放行
    next()
})

export default router
